/**
 * @typedef {string[0] & {__char__?: 1}} Char
 */

/**
 * @param {string[]} s
 * @param {string[]} t
 */
function Distance(s, t) {}
// function Distance(char s[1..m], char t[1..n]):
//   // for all i and j, d[i,j] will hold the distance between
//   // the first i characters of s and the first j characters of t
//   // note that d has (m+1)*(n+1) values
//   declare int d[0..m, 0..n]

//   set each element in d to zero

//   // source prefixes can be transformed into empty string by
//   // dropping all characters
//   for i from 1 to m:
//       d[i, 0] := i

//   // target prefixes can be reached from empty source prefix
//   // by inserting every character
//   for j from 1 to n:
//       d[0, j] := j

//   for j from 1 to n:
//       for i from 1 to m:
//           if s[i] = t[j]:
//             substitutionCost := 0
//           else:
//             substitutionCost := 1

//           d[i, j] := minimum(d[i-1, j] + 1,                   // deletion
//                              d[i, j-1] + 1,                   // insertion
//                              d[i-1, j-1] + substitutionCost)  // substitution

//   return d[m, n]
